package algorithm;

public class leetcode_0067 {
    public String addBinary(String a, String b) {
        int len1=a.length();
        int len2=b.length();
        int len=Math.max(len1,len2);
        int [] num=new int[len];
        int flag=0;
        for(int i=0;i<Math.min(len1,len2);++i){
            int tem=(a.charAt(len1-1-i)-'0')+(b.charAt(len2-1-i)-'0')+flag;
            if(tem>=2){
                flag=1;
                num[len-1-i]=tem%2;
            }
            else{
                flag=0;
                num[len-1-i]=tem%2;
            }
        }
        if(len1>len2){
            for(int i=len1-len2-1;i>=0;--i){
                int tem=a.charAt(i)-'0'+flag;
                if(tem>=2){
                    flag=1;
                    num[i]=tem%2;
                }
                else{
                    flag=0;
                    num[i]=tem%2;
                }
            }
        }
        else{
            for(int i=len2-len1-1;i>=0;--i){
                int tem=b.charAt(i)-'0'+flag;
                if(tem>=2){
                    flag=1;
                    num[i]=tem%2;
                }
                else{
                    flag=0;
                    num[i]=tem%2;
                }
            }
        }
        String s="";
        if(flag==1) s+=1;
        for(int i=0;i<len;++i){
            s+=num[i];
        }
        return s;
    }
}
